/**
 * @param {number[]} nums
 * @return {number[][]}
 */
// 动态规划，长度为n的幂集的数量是长度为n-1幂集的数量的2倍
// 而这个多出来的1倍，就是多出来的那个数添加在n-1幂集上
// 动态规划，用一个变量记录长度为i的结果，不断更新答案就行。
var subsets = function(nums) {
    let ans = []
    for(let i = 0; i < nums.length; i++) {
        if(i == 0) {
            ans = [[], [nums[i]]]
        } else {
            let temp = JSON.parse(JSON.stringify(ans))
            for(let j = 0; j < ans.length; j++) {
                ans[j].push(nums[i])
                temp.push(ans[j])
            }
            ans = temp
        }
    }
    return ans
};
console.log(subsets([1, 2, 3]));
console.log(subsets([0]));